#ifndef _HH_T_GENERADOR_TRIANGULOS_T_HH_
#define _HH_T_GENERADOR_TRIANGULOS_T_HH_

#include "TrianguloRectanguloConAlturaDos.h"
#include "Float.h"

class GeneradorDeTriangulosRectangulosConAlturaDos
{
  public:
  	GeneradorDeTriangulosRectangulosConAlturaDos(double, double, unsigned int, unsigned int);
  	
  	void iniciar();
  	void siguiente();
  	bool hayMasTriangulos() const;
  	virtual TrianguloRectanguloConAlturaDos generarTriangulo() = 0;
  	
  	const double obtenerRepresentacionBaseActual() const;
  	const unsigned int obtenerPrecision() const;
  	
  private:
  	double representacionBaseInicial, representacionBaseActual, limiteRepresentacionBase, incrementoPorIteracion;
  	unsigned int cantidadIteraciones, precision;
  	Float altura;
  	
  protected:
  	TrianguloRectanguloConAlturaDos Crear(const Float &base) const;
};

#endif//_HH_T_GENERADOR_TRIANGULOS_T_HH

